package cn.doit.dat06

//不变  T   放钢笔的盒子和放笔的盒子是没有任何关系的
//协变  +T  放钢笔的盒子和放笔的盒子是父子关系的
//逆变  -T  钢笔本身是笔的子类。那么如果是逆变，放钢笔的盒子是放笔盒子的父类
object _10_逆变_协变_不变 {
  def main(args: Array[String]): Unit = {
    val bi: Bi = new Bi
    val pen: Bi = new Pen
//    val pens: util.ArrayList[Bi] = new util.ArrayList[Pen]()

    val value: Box[Bi] = new Box[Bi](new Bi)
    val value1: Box[Pen] = new Box[Bi](new Bi)

  }
}
class Box[-T](t:T)

class Bi

class Pen extends Bi{
  def add()={
    println()
  }
}
